import request from '@/utils/request'

/**
 * 获取报警点日志分页数据
 * @param {Object} params - 查询参数
 * @param {number} params.deptId - 机构ID，必填，填写1
 * @param {number} params.radarId - 雷达ID，必填，固定填174
 * @param {number} params.pageIndex - 页码，默认1
 * @param {number} params.pageSize - 每页大小，默认10
 * @param {number} params.radarPointId - 雷达监测点ID（可选）
 * @param {number} params.alarmType - 预警类型（可选）
 * @param {number} params.alarmLevel - 报警等级（可选）
 * @returns {Promise} API响应
 */
export function getAlarmPointLogsPage(params) {
  return request({
    url: '/api/v1/alarm/getAlarmPointLogsPage',
    method: 'get',
    params: {
      deptId: 1,
      radarId: 1,
      ...params
    }
  })
}

/**
 * 获取形变曲线数据
 * @param {Object} params - 查询参数
 * @param {number} params.kind - 数据类型：0=形变、1=速度、2=加速度
 * @param {number} params.radarId - 设备ID，必填，固定174
 * @param {Array} params.index - 监测点ID数组，必填
 * @param {string} params.startTime - 开始时间，格式: 2006-01-02 15:04:05
 * @param {string} params.endTime - 结束时间，格式: 2006-01-02 15:04:05
 * @returns {Promise} API响应
 */
export function getDeformCurveList(params) {
  return request({
    url: '/api/v1/radar_point/getDeformCurveList',
    method: 'post',
    data: {
      kind: params.kind || 1,
      radarId: 9,
      index: params.index || [],
      startTime: params.startTime,
      endTime: params.endTime
    }
  })
}

/**
 * 获取监测点列表
 * @param {Object} params - 查询参数
 * @param {number} params.deptId - 机构ID，必填，填写1
 * @param {number} params.radarId - 雷达ID，必填，固定174
 * @param {number} params.pageIndex - 页码，默认1
 * @param {number} params.pageSize - 每页大小，默认10
 * @returns {Promise} API响应
 */
export function getPointListByDeptId(params) {
  return request({
    url: '/api/v1/radar_point/getPointListByDeptId',
    method: 'get',
    params: {
      deptId: 1,
      radarId: 1,
      ...params
    }
  })
}

/**
 * 获取隐患点信息
 * @param {Object} params - 查询参数
 * @param {number} params.deptId - 机构ID，必填，填写1
 * @param {number} params.radarId - 雷达ID，必填，固定174
 * @returns {Promise} API响应
 */
export function getSideInfo(params) {
  return request({
    url: '/api/v1/radar_info/getSideInfo',
    method: 'get',
    params: {
      deptId: 1,
      radarId: 1,
      ...params
    }
  })
}

/**
 * 辅助函数：格式化报警等级
 */
export function formatAlarmLevel(level) {
  const levelMap = {
    0: { name: '无', color: '#999999' },
    1: { name: '蓝色', color: '#00fdfa' },
    2: { name: '黄色', color: '#FFFF00' },
    3: { name: '橙色', color: '#FF6600' },
    4: { name: '红色', color: '#f5023d' }
  }
  return levelMap[level] || levelMap[0]
}

/**
 * 辅助函数：格式化报警类型
 */
export function formatAlarmType(type) {
  const typeMap = {
    100: '累计水平位移',
    101: '水平位移速度',
    102: '水平位移加速度'
  }
  return typeMap[type] || '未知类型'
}

/**
 * 辅助函数：处理形变曲线数据
 * 注意：v值需要除以100，因为服务器的值的单位是m，前端显示需要转换为mm
 */
export function processDeformCurveData(data) {
  if (!data || !data.list) return data
  
  const processedList = {}
  Object.keys(data.list).forEach(pointId => {
    processedList[pointId] = data.list[pointId].map(item => ({
      ...item,
      v: item.v / 100 // 转换单位：m -> mm
    }))
  })
  
  return {
    ...data,
    list: processedList
  }
}